package testes.unit;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import kuonta.domain.ItemRecibo;
import kuonta.domain.Recibo;
import kuonta.domain.TipoRecibo;
import kuonta.service.ServiceRecibo;

import org.cerberus.core.persistence.orm.Dao;
import org.junit.Test;

@SuppressWarnings("unchecked")
public class TestRecibo {

	private static Dao dao = (Dao)Util.getBean("basicosDao");
		
	private static ServiceRecibo serviceRecibo = (ServiceRecibo)Util.getBean("serviceRecibo");
	
	@Test
	public void criarReciboComItens(){		
		ItemRecibo item1 = new ItemRecibo();
		ItemRecibo item2 = new ItemRecibo();
		ItemRecibo item3 = new ItemRecibo();
		
		item1.setData(new Date());
		
		item1.setValor(new BigDecimal(50));
		
		item2.setData(new Date());
		
		item2.setValor(new BigDecimal(20));
		
		item3.setData(new Date());
		
		item3.setValor(new BigDecimal(5));
		
		List<ItemRecibo> itens = new ArrayList<ItemRecibo>();
		itens.add(item1);
		itens.add(item2);

		Recibo recibo = new Recibo();
		recibo.setData(new Date());
		recibo.setTipo(TipoRecibo.ENTRADA);
		recibo.setItens(itens);
		dao.save(recibo);
				
		item1.setRecibo(recibo);
		item2.setRecibo(recibo);
		dao.save(item1);
		dao.save(item2);
	}
	
	@Test
	public void registrarRecibosComFolha(){
		ItemRecibo item1 = new ItemRecibo();
		ItemRecibo item2 = new ItemRecibo();
		ItemRecibo item3 = new ItemRecibo();
		
		item1.setData(new Date());
		
		item1.setValor(new BigDecimal(50));
		
		item2.setData(new Date());
		
		item2.setValor(new BigDecimal(20));
		
		item3.setData(new Date());
		
		item3.setValor(new BigDecimal(5));
		
		List<ItemRecibo> itens = new ArrayList<ItemRecibo>();
		itens.add(item1);
		itens.add(item2);

		Recibo recibo = new Recibo();
		recibo.setData(new Date());
		recibo.setTipo(TipoRecibo.ENTRADA);
		recibo.setItens(itens);
		
		item1.setRecibo(recibo);
		item2.setRecibo(recibo);
		
		serviceRecibo.saveReciboWithFolhaItens(recibo, 1);
	}
}
